home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0257
/
doc.exe
/
MENGEN.DOC
< prev
next >
Wrap
Text File
|
1992-02-12
|
6KB
|
184 lines
─────────────────────────────────────────────────────────────────────────────
Dokumentation zur Datei: MENGEN.INC
─────────────────────────────────────────────────────────────────────────────
MENGEN.INC - Routinen zur Arbeit mit Mengen
(für den Assembler A86)
(c) Bernd Schemmer 1990 - 1992
Letzter Update: 12.02.1992
■ Beschreibung:
---------------
Eine Menge ist gegeben durch einen Array von 16 Worten.
Jedes Mengen-Element wird durch ein Bit dargestellt, d.h. eine Menge
kann maximal 256 Elemente á einem Byte enthalten (16 Worte = 256 Bit).
Ein gesetztes Bit bedeutet, daß das Element vorhanden ist; ein nicht
gesetztes Bit signalisiert das Nichtvorhandensein eines Elementes.
Die Zuordnung zwischen Bit-Nummer und Mengen-Element muß implizit
(z.B. bei Buchstaben ist die zugehörige Bit-Nummer jeweils der ASCII-
code) oder explizit im Programm (z.B. bei Mengen wie 'Apfel, Birne,
Pflaume, etc' = Obst) durchgeführt werden.
Jedes Element kann in einer Menge entweder vorhanden sein oder nicht.
Die Anzahl eines Elementes in einer Menge ist also nicht speicher-
bzw. ermittelbar.
Alle Routinen benutzen das Register AX als Arbeitsregister.
■ Variablen:
------------
Menge_Der_Grossbuchstaben - Menge
Menge_Der_KleinBuchstaben - Menge
Menge_Der_Buchstaben - Menge
■ Routinen:
-----------
Bilde_Menge - Erstellt eine Menge
Subb_ELement - Löscht ein Element aus einer Menge
Add_Element - Fügt einer Menge ein neues Element zu
Element_Vorhanden? - Überprüft, ob ein Element vorhanden ist
Card_Menge - Ermittelt die Anzahl der Elemente in einer
Menge
XOR_Mengen - VerXORt zwei Mengen, d.h. bildet die Menge
aller Elemente die entweder in der ersten
Menge oder in der zweiten Menge aber nicht
in beiden Mengen vorkommen
Schneide_Mengen - Bildet die Schnittmenge zweier Mengen
Kopiere_Menge - Kopiert eine Menge in eine andere Menge
Loesche_Menge - Löscht eine Menge
Vereinige_Mengen - Bildet die Vereinigungsmenge zweier Mengen
Negiere_Menge - Bildet die Komplement-Menge zu einer Menge
d.h. die Menge aller Elemente die nicht in
der Menge enthalten sind
----------------------------
DefiniereMenge
Funktion: Macro zum definieren einer Menge mit dem namen #1 als
leere Menge
Aufruf: DefiniereMenge NameDerMenge
----------------------------
Bilde_Menge
Funktion: Aufbau einer Menge
Eingabe: DS:BX -> Menge
ES:DI -> Byte-Array mit den Mengen-Elementen
CL = Anzahl der Mengen-Elemente
Ausgabe: Die Menge bei DS:BX wurde eingerichtet.
Bes.: Falls CL gleich 0 ist, wird eine leere Menge erstellt.
----------------------------
Element_Vorhanden?
Funktion: Feststellen, ob das Element mit der Nummer aus AL in
einer Menge vorhanden ist
Eingabe: AL = Nummer des Elements
DS:BX -> Menge
Ausgabe: ZF = 0 ->> Element enthalten
ZF = 1 ->> Element nicht enthalten
----------------------------
Add_Element
Funktion: Hinzufügen des Elementes mit der Nummer aus AL zu
eine Menge
Eingabe: AL = Nummer des Elementes
DS:BX -> Menge
-----------------------------
Subb_Element
Funktion: Entfernen des Elementes mit der Nummer aus AL aus
einer Menge
Eingabe: AL = Nummer des Elementes
DS:BX -> Menge
----------------------------
Loesche_Menge
Funktion: Löschen einer Menge
Eingabe: DS:BX -> zu löschende Menge
----------------------------
Kopiere_Menge
Funktion: Kopiert eine Menge in eine andere Menge
Eingabe: DS:BX -> Quellmenge
ES:DI -> Zielmenge
Ausgabe: Die Menge bei ES:DI entspricht der Menge
bei DS:SI
----------------------------
Card_Menge
Funktion: Ermittle die Anzahl der Elemente einer Menge
Eingabe: DS:BX -> Menge
Ausgabe: AL = Anzahl der Elemente
----------------------------
Negiere_Menge
Funktion: Bilde die Menge aller nicht in der Quellmenge
vorkommenden Elemente
Eingabe: DS:BX -> Quellmenge
ES:DI -> Zielmenge
Ausgabe: Die Menge bei ES:DI ist die Menge mit allen
Elementen die nicht in der Quellmenge enthalten sind
----------------------------
Vereinige_Mengen
Funktion: Bilde die Vereinigungs-Menge zweier Mengen (OR)
Eingabe: DS:BX -> Menge1
ES:DI -> Menge2
Ausgabe: Die Menge bei ES:DI ist die Vereinigungs-Menge
der beiden Mengen
----------------------------
Schneide_Mengen
Funktion: Bilde die Schnittmenge zweier Mengen (AND)
Eingabe: DS:BX -> Menge1
ES:DI -> Menge2
Ausgabe: Die Menge bei ES:DI ist die Schnittmenge der
beiden Mengen
----------------------------
XOR_Mengen
Funktion: Ermittle die Menge aller Elemente die
nur in Menge1 oder nur in Menge2 vor-
kommen
Eingabe: DS:BX -> Menge1
ES:DI -> Menge2
Ausgabe: Die Menge bei ES:DI ist die exklusiv veroderte
Menge der beiden Mengen